package com.jingewenku.abrahamcaijin.commonutil; import android.graphics.ColorMatrixColorFilter; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.ImageView; import com.jingewenku.abrahamcaijin.commonutil.klog.KLog; /** * @Description:主要功能:控件点击效果动画工具类 * @Prject: CommonUtilLibrary * @Package: com.jingewenku.abrahamcaijin.commonutil * @author: AbrahamCaiJin * @date: 2017年05月15日 11:42 * @Copyright: 个人版权所有 * @Company: * @version: 1.0.0 */ public class ToolAnimation { /** * 给视图添加点击效果,让背景变深 * */ public static void addTouchDrak(View view, boolean isClick) { view.setOnTouchListener(VIEW_TOUCH_DARK); if (!isClick) { view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); } } /** * 给视图添加点击效果,让背景变暗 * */ public static void addTouchLight(View view, boolean isClick) { view.setOnTouchListener(VIEW_TOUCH_LIGHT); if (!isClick) { view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); } } /** * 让控件点击时,颜色变深 * */ public static final OnTouchListener VIEW_TOUCH_DARK = new OnTouchListener() { public final float[] BT_SELECTED = new float[] { 1, 0, 0, 0, -50, 0, 1, 0, 0, -50, 0, 0, 1, 0, -50, 0, 0, 0, 1, 0 }; public final float[] BT_NOT_SELECTED = new float[] { 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0 }; @SuppressWarnings("deprecation") @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { if (v instanceof ImageView) { ImageView iv = (ImageView) v; iv.setColorFilter(new ColorMatrixColorFilter(BT_SELECTED)); } else { v.getBackground().setColorFilter( new ColorMatrixColorFilter(BT_SELECTED)); v.setBackgroundDrawable(v.getBackground()); } } else if (event.getAction() == MotionEvent.ACTION_UP) { if (v instanceof ImageView) { ImageView iv = (ImageView) v; iv.setColorFilter(new ColorMatrixColorFilter( BT_NOT_SELECTED)); } else { v.getBackground().setColorFilter( new ColorMatrixColorFilter(BT_NOT_SELECTED)); v.setBackgroundDrawable(v.getBackground()); } } return false; } }; /** * 让控件点击时,颜色变暗 * */ public static final OnTouchListener VIEW_TOUCH_LIGHT = new OnTouchListener() { public final float[] BT_SELECTED = new float[] { 1, 0, 0, 0, 50, 0, 1, 0, 0, 50, 0, 0, 1, 0, 50, 0, 0, 0, 1, 0 }; public final float[] BT_NOT_SELECTED = new float[] { 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0 }; @SuppressWarnings("deprecation") @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { if (v instanceof ImageView) { ImageView iv = (ImageView) v; iv.setDrawingCacheEnabled(true); iv.setColorFilter(new ColorMatrixColorFilter(BT_SELECTED)); } else { v.getBackground().setColorFilter( new ColorMatrixColorFilter(BT_SELECTED)); v.setBackgroundDrawable(v.getBackground()); } } else if (event.getAction() == MotionEvent.ACTION_UP) { if (v instanceof ImageView) { ImageView iv = (ImageView) v; iv.setColorFilter(new ColorMatrixColorFilter( BT_NOT_SELECTED)); KLog.e("变回来"); } else { v.getBackground().setColorFilter( new ColorMatrixColorFilter(BT_NOT_SELECTED)); v.setBackgroundDrawable(v.getBackground()); } } return false; } }; }